home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / sa-book.zip / sendmail.cf < prev    next >
Text File  |  1989-09-27  |  21KB  |  566 lines

  1. ################################################################################
  2. ###
  3. ### Sendmail configuration file for the University of Colorado, Boulder
  4. ###    Flavor: GrandPoohbah for use on boulder.Colorado.EDU
  5. ###    Last update: Sun Aug 28 17:32:48 MDT 1988
  6. ###
  7. ################################################################################
  8.  
  9. #    necessary evil. would rather initialize on cmd line w/ -oMw`hostname` or something.
  10. DWboulder
  11. ##
  12. #    Q need only be be defined if you are using the uusndmail mailer
  13. DQboulder
  14. ##
  15. #    my name. comes out on error messages
  16. Dnpostmaster@$w
  17. ##
  18. #    revision date mmddyy
  19. DZ082888
  20. ##
  21. #    flavor/revision date. appears on 'Received' header and smtp sign-on 
  22. DXcu.grandpoobah.$Z
  23. ##
  24. #    uucp hosts this machine talks to directly 
  25. FU/usr/lib/uucp/L.sys %[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-]
  26. ##
  27. #    local DECNET gateway
  28. DVcolo.colorado.edu
  29. ##
  30. #    BITNET gateway
  31. DBvaxf.colorado.edu
  32. ##
  33. #    CSNET gateway host
  34. DPrelay.cs.net
  35. #
  36. #    ultimate authority host (if they can't get rid of it, no one can)
  37. DSrelay.cs.net
  38. ##
  39. #    top-level domains that csnet likes to deal with... note that these are ones that
  40. #    get sent directly.  ones not falling in this category (and no other special ones like
  41. #    BITNET or uucp) will get sent to $S for resolution
  42. CTARPA EDU GOV MIL COM ORG NET 
  43. ##
  44. #    this host's official domain
  45. DDColorado.EDU
  46. ##
  47. #    define official host name (taken from $w which is from /bin/hostname)
  48. #    $w must include the domain if running the name server.
  49. Dj$w
  50. ##
  51. #    sometimes they forget .edu so we have to answer to this too.
  52. DMcolorado
  53. ##
  54. #    Class of machines in $D domain that are connected via uucp links, but do not
  55. #        want addresses in !bhangist format
  56. CYuswat uswest mcbryan 
  57. ##
  58. #    Hosts in Colorado.EDU  (deliver direct smtp) -- should be from file
  59. #        Last update: Wed Jan  6 09:29:19 MST 1988
  60. CCagua         ajsh         aleft        alta         clipr    bakmes
  61. CCanchor       anchor       annex-isn    annex03      annex04      
  62.  ...
  63. CCyaba         yquem        zippy        quill          gw-optics    zeppo
  64. ##
  65. #    Hosts hidden behind boulder, From line reads boulder.Colorado.EDU
  66. #        Last update: Thu Dec  3 12:10:35 MST 1987
  67. CAanchor       ausone       barney       bass         beagle       becks        
  68. CAbones        boulder      brion        chekov       columbine    dennis       
  69.  ...
  70. CAnewton       gauss        picard       laguerre     raphson       mcbryan
  71. ##
  72. #    DECNET nodes
  73. #        Last update: Wed Jan  6 09:27:33 MST 1988
  74. CVacspc1  acstst  albedo  algol   altair  amino1  amino2  aquila  arctic  
  75. CVaries   athena  auk     bali    booby   boris   canary  ccncsm  ccndu   
  76.  ...
  77. CVvesta   virgo   vlsimv  wizard  wren    zeppo   zeus    zodiac  rover
  78.  
  79. #######################################
  80. ###   Boilerplate: special macros   ###
  81. #######################################
  82. #    UNIX header format
  83. DlFrom $g  $d
  84. #    delimiter (operator) characters
  85. Do.!:@^%/[]
  86. #    format of a total name
  87. Dq$?x$x <$g>$|$g$.
  88. #    SMTP login message
  89. De$j Sendmail $v/$X ready at $b
  90.  
  91. ################################
  92. ###   Boilerplate: options   ###
  93. ################################
  94. #    location of alias file
  95. OA/usr/lib/aliases
  96. #    default delivery mode (deliver in background)
  97. Odbackground
  98. #    temporary file mode
  99. OF0600
  100. #    default GID
  101. Og1
  102. #    location of help file
  103. OH/usr/lib/sendmail.hf
  104. #    log level
  105. OL0
  106. #    default messages to old style
  107. Oo
  108. #    queue directory
  109. OQ/usr/spool/mqueue
  110. #    read timeout -- violates protocols
  111. Or2h
  112. #    status file
  113. OS/usr/lib/sendmail.st
  114. #    queue up everything before starting transmission
  115. Os
  116. #    default timeout interval
  117. OT2d
  118. #    time zone names (V6 only)
  119. OtMST,MDT
  120. #    default UID
  121. Ou1
  122. #    wizard's password
  123. Ow************
  124. #    maximum load average before queueing mail
  125. Ox25
  126. #    maximum load average before rejecting connections
  127. OX30
  128.  
  129. ############################################
  130. ###   Boilerplate: message precedences   ###
  131. ############################################
  132. Pfirst-class=0
  133. Pspecial-delivery=100
  134. Pbulk=-60
  135. Pjunk=-100
  136.  
  137. ######################################
  138. ###   Boilerplate: trusted users   ###
  139. ######################################
  140. Troot
  141. Tdaemon
  142. Tuucp
  143. #Teric        eric is Lee's 10 year old kid on our system
  144. Tcoggs
  145.  
  146. ##########################################
  147. ###   Boilerplate: format of headers   ###
  148. ##########################################
  149. H?P?Return-Path: <$g>
  150. HReceived: by $W.$D ($X); $b; id $i; from $s
  151. H?D?Resent-Date: $a
  152. H?D?Date: $a
  153. H?F?Resent-From: $q
  154. H?F?From: $q
  155. H?x?Full-Name: $x
  156. HSubject:
  157. H?M?Message-Id: <$t.$i@$W.$D>
  158. H?M?Resent-Message-Id: <$t.$i@$j>
  159.  
  160. S1
  161. ################################################################################
  162. #  Ruleset 1: Sender field pre-rewriting  
  163. ################################################################################
  164. # DECNET syntax
  165. #R$-::$-    $2@$1.decnet
  166. R$-::$-        $2@$1
  167. R$-::$+        $2
  168.  
  169. S2
  170. ################################################################################
  171. #  Ruleset 2: Recipient field pre-rewriting  
  172. ################################################################################
  173. # DECNET syntax
  174. #R$-::$-    $2@$1.decnet
  175. R$-::$-        $2@$1
  176. R$-::$+        $2
  177.  
  178. S3 
  179. ################################################################################
  180. ###  Ruleset 3: Name canonicalization  
  181. ################################################################################
  182. # handle "from:<>" special case 
  183. R<>            $@@                turn into magic token 
  184. # basic textual canonicalization
  185. R$*<$*<$*<$+>$*>$*>$*    $4                3-level <> nesting
  186. R$*<$*<$+>$*>$*        $3                2-level <> nesting
  187. R$*<$+>$*        $2                basic RFC821/822 parsing
  188. R$+ at $+        $1@$2                "at" -> "@" for RFC 822
  189. R$*<$*>$*        $1$2$3                in case recursive
  190. # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
  191. R@$+,$+            @$1:$2                change all "," to ":"
  192. # handle source route address
  193. R@$+:$+            $@<@$1>:$2            handle <route-addr>
  194. # more miscellaneous cleanup
  195. R$+:$*;@$+        $@$1:$2;@$3            list syntax
  196. R$+@$+            $:$1<@$2>            focus on domain
  197. R$+<$+@$+>        $1$2<@$3>            move gaze right
  198. R$+%$+            $:$>8$1%$2            user%host%host
  199. R$+<@$+>        $@$1<@$2>            since already canonical, exit
  200. # bhangist to domainist
  201. R$+@$+.UUCP        $@$1<@$2.UUCP>            already done
  202. R$+^$+            $1!$2                convert ^ to !
  203. R$-!$+            $@$2<@$1.UUCP>            resolve uucp names
  204. R$-.$-.$-!$+        $@$4<@$1.$2.$3.UUCP>        
  205.  
  206. S4
  207. ################################################################################
  208. #  Ruleset 4: Final output post-rewriting 
  209. ################################################################################
  210. R@            $@                handle <> error addr
  211. # externalize local domain info
  212. R$*<$+>$*        $1$2$3                defocus
  213. R@$+:$+:$+        @$1,$2:$3            <route-addr> canonical
  214.  
  215. S6
  216. ################################################################################
  217. #  Ruleset 6: Localhost deletion
  218. ################################################################################
  219. R$*<$*@$=w>$*        $1<$2@>$4    this host
  220. R$*<$*@$=W>$*        $1<$2@>$4    this host
  221. R$*<$*@$W>$*        $1<$2@>$3    this host
  222. R$*<$*@$=w.$D>$*    $1<$2@>$4    this host
  223. R$*<$*@$W.$D>$*        $1<$2@>$3    this host
  224. R$*<$*@$W.$M>$*        $1<$2@>$3
  225. R$*<$*@$D>$*        $1<$2@>$3    
  226.  
  227. S7
  228. ################################################################################
  229. #  Ruleset 7: Explicit names of us as source route addresses
  230. ################################################################################
  231. R<@$=w>:$*        <@>:$1        this host
  232. R<@$=W>:$*        <@>:$1        this host
  233. R<@$=W.$D>:$*        <@>:$1        this host
  234. R<@$=W.$M>:$*        <@>:$1        this host
  235. R<@$=D>:$*        <@>:$1        this host
  236.  
  237. S8
  238. ################################################################################
  239. #  Ruleset 8: THE percent hack; Given multiple %'s change rightmost % to @.
  240. ################################################################################
  241. R$*<$*>$*        $1$2$3        defocus
  242. R$*%$*            $1@$2        First make them all @'s.
  243. R$*@$*@$*        $1%$2@$3    Undo all but the last.
  244. R$*@$*            $@$1<@$2>    Put back the brackets.
  245.  
  246. S0
  247. ################################################################################
  248. #####
  249. #####        RULESET ZERO PREAMBLE
  250. #####
  251. #####    The beginning of ruleset zero is constant through all configurations.
  252. #####
  253. ################################################################################
  254. # perhaps an aesthetic crime to put it here, but have to catch DECNET early...
  255. R$w::$-            <@>:$1
  256. R$-::$-            $2<@$1.decnet>
  257. # first make canonical
  258. R$*<$*>$*        $1$2$3            defocus
  259. R$+            $:$>3$1            make canonical
  260. # handle special cases.....
  261. R@            $#local$:$n        handle <> form
  262. # handle [a.b.c.d] host addresses
  263. R$*<@[$+]>$*        $#nonlclsmtp$@[$2]$:$1@[$2]$3    numeric internet spec
  264. # now delete the local info
  265. R$+<@$W.UUCP>        $1<@>            us as uucp address
  266. R$*<$*$W.UUCP>$*    $1<$2>$3        thishost
  267. R<@$w:>$*        <@>:$1            we were head of the route
  268. R<@$W:>$*        <@>:$1            we were head of the route
  269. R$+            $:$>7$1            more of us at head of route
  270. R$+            $:$>6$1            other names for this host
  271. R$*<$*.>$*        $1<$2>$3        drop trailing dot
  272. # and retry
  273. R<@>:$*            $@$>0$1            retry after route strip
  274. R$*<@>            $@$>0$1            strip null trash & retry
  275.  
  276. ################################################################################
  277. ###  Machine-dependent part of ruleset zero  
  278. ###  Distinctive characteristics: serves as uucp hub, utilizes the name server
  279. ################################################################################
  280. R<@$+>$*:$+:$+        <@$1>$2,$3:$4        <route-addr> canonical
  281. ##
  282. # (doesn't work either)
  283. R$+<@[128.138.240.1]>$*    $#local$:$1            
  284. # numeric internet spec (broken 'cause of name server at the moment)
  285. R$*<@[$+]>$*        $#nonlclsmtp$@[$2]$:$1@[$2]$3
  286. ##
  287. # first try local smtp-able neighbor, then try uucp neighbor
  288. R$+<@$=C>        $#lclsmtp$@$2$:$1<@$2>
  289. R$+<@$=C.$D>        $#lclsmtp$@$2$:$1<@$2>
  290. R$+<@$=C.UUCP>        $#lclsmtp$@$2$:$1<@$2>
  291. R$+<@$=C.$D.UUCP>    $#lclsmtp$@$2$:$1<@$2>
  292. R<@$=C>:$+        $#lclsmtp$@$1$:<@$1>:$2
  293. R<@$=C.$D>:$+        $#lclsmtp$@$1$:<@$1>:$2
  294. R<@$=C.$D.UUCP>:$+    $#lclsmtp$@$1$:<@$1>:$2
  295. ##
  296. # special class of uucp neighbors (in Colorado.EDU domain) that like Internet addresses    
  297. R$+<@$=Y>        $#uusndmail$@$2$:$1<@$2>
  298. R$+<@$=Y.$D>        $#uusndmail$@$2$:$1<@$2>
  299. R$+<@$=Y.UUCP>        $#uusndmail$@$2$:$1<@$2>
  300. R<@$=Y>:$+        $#uusndmail$@$1$:<@$1>:$2
  301. R<@$=Y.$D>:$+        $#uusndmail$@$1$:<@$1>:$2
  302. ##
  303. # next see if it is a local decmailable neighbor
  304. R$+<@$=V.UUCP>        $#lclsmtp$@$V$:$1<@$2>        user@dnethost.UUCP
  305. R$+<@$=V>        $#lclsmtp$@$V$:$1<@$2>        user@dnethost
  306. R$+<@$=V.$D>        $#lclsmtp$@$V$:$1<@$2>        user@dnethost.domain
  307. R$+<@$-.DECNET>        $#lclsmtp$@$V$:$1<@$2.DECNET>    user@dnethost.DECNET
  308. R$+<@$-.DNET>        $#lclsmtp$@$V$:$1<@$2.DECNET>    user@dnethost.DNET
  309. R$+<@$-.DNET.$D>    $#lclsmtp$@$V$:$1<@$2.DECNET>    user@dnethost.DNET.domain
  310. R$+<@$-.DECNET.$D>    $#lclsmtp$@$V$:$1<@$2.DECNET>    user@dnethost.decnet.domain
  311. R<@$=V>:$+        $#lclsmtp$@$V$:<@$1:$2>        @dnethost:whatever
  312. R<@$-.DECNET>:$+    $#lclsmtp$@$V$:<@$1.DECNET:$2>    @dnethost.DECNET:whatever
  313. R<@$-.DECNET.$D>:$+    $#lclsmtp$@$V$:<@$1.DECNET:$3>    @dnethost.decnet.domain:whtevr
  314. ##
  315. #  next, see if it is a local UUCP neighbor
  316. R$+<@$w.UUCP>        $#local$:$1        thishost.UUCP
  317. R$+<@$w.$D.UUCP>    $#local$:$1        thishost.UUCP
  318. R$+<@$=U.UUCP>        $#uucp$@$2$:$1        uucpneighbor.UUCP
  319. R$+<@$=U>        $#uucp$@$2$:$1        uucpneighbor
  320. R$+<@$=U.$D>        $#uucp$@$2$:$1        uucpneighbor.colorado.edu    
  321. ##
  322. # if it is in uucp format and still isn't resolved, foist it off on pathalias  
  323. R$+<@$+.UUCP>        $#palias$@$2$:$1    call uucp via mystical pathalias
  324. ##
  325. # by this time we have tried everything imaginable to resolve user@host.colorado.edu,
  326. # don't try higher authority, since they will just spit it back at us.
  327. R$+<@$-.$D>        $#error$:Host: $2 Non-existent in the $D domain
  328. R<@$-.$D>:$+        $#error$:Host: $1 Non-existent in the $D domain
  329. ## 
  330. # resolve 'phony' domains...
  331. R$*<@$+.BITNET>$*    $#nonlclsmtp$@$B$:$1@$2.BITNET$3
  332. R<@$+.BITNET>:$*    $#nonlclsmtp$@$B$:@$1.BITNET:$2
  333. ##
  334. # anything in the T class is considered nameservable.. 
  335. R$+<@$+.$=T>        $#nonlclsmtp$@$2.$3$:$1<@$2.$3>
  336. R$+<@$+.$+.$=T>        $#nonlclsmtp$@$2.$3.$4$:$1<@$2.$3.$4>
  337. R$+<@$+.$+.$+.$=T>    $#nonlclsmtp$@$2.$3.$4.$5$:$1<@$2.$3.$4.$5>
  338. R<@$+.$=T>:$+        $#nonlclsmtp$@$1.$2$:<@$1.$2>:$3
  339. R<@$+.$+.$=T>:$+    $#nonlclsmtp$@$1.$2.$3$:<@$1.$2.$3>:$4
  340. R<@$+.$+.$+.$=T>:$+    $#nonlclsmtp$@$1.$2.$3.$4$:<@$1.$2.$3.$4>:$5
  341. ##
  342. # Let CSNET deal w/anything else...
  343. R$+<@$+.CSNET>        $#csnet$@relay.cs.net$:$1<@$2>    user@anything.CSNET
  344. R$+<@$+>        $#csnet$@$S$:$1<@$2>
  345. R<@$+>:$+        $#csnet$@$S$:<@$1>:$2    
  346. ##
  347. # everything else must be a local name
  348. R$-            $#local$:$1            local names
  349. ##
  350. # let the ":include:" aliases hack get to local too.
  351. R:include:$+        $#local$::include:$1
  352. R/$+            $#local$:/$1
  353. ##
  354. # if it got to here, we are stumped.
  355. R$+            $#error$: $1: Unparseable address
  356. ##
  357. # end of the fabulous ruleset 0. Go read some other short fiction.
  358.  
  359. ################################################################################
  360. ###  Mailer lclsmtp: local smtp Internet mailer specification
  361. ################################################################################
  362. Mlclsmtp,     P=[IPC], F=msCDFMuX, S=20, R=21, E=\r\n, A=IPC $h
  363.  
  364. S20
  365. ################################################################################
  366. ###  Ruleset 20: sender rewriting for local smtp mailer
  367. ################################################################################
  368. R$+<@$=Y>        $@$1%$2<@$W>    Unfortunate, but necessary
  369. # pass <route-addr>'s through
  370. R<@$+>$*        $@<@$1>$2            resolve <route-addr>
  371. # handle other external cases
  372. R$+<@$->        $@$1<@$2>            user@host
  373. R$+<@[$+]>        $@$1<@[$2]>            [a.b.c.d]
  374. # convert remaining addresses to old format and externalize appropriately
  375. R$-            $@$1@$?H$H$|$W$.
  376. # respect bhangist
  377. R$+<@$+.UUCP>        $:$2!$1
  378. R$W!$W!$+        $@$W!$1
  379.  
  380. S21
  381. ################################################################################
  382. ###  Ruleset 21: recipient rewriting for local smtp mailer
  383. ################################################################################
  384. # respect bhangist
  385. R$+<@$+.UUCP>        $:$2!$1
  386.  
  387. ################################################################################
  388. ###  Mailer nonlclsmtp: non-local Internet mailer specification
  389. ################################################################################
  390. Mnonlclsmtp,    P=[IPC], F=msRDFPMueXL, S=14, R=15, A=IPC $h, E=\r\n
  391.  
  392. S14
  393. ################################################################################
  394. ###  Ruleset 14: sender rewriting for non-local smtp mailer
  395. ################################################################################
  396. # pass <route-addr>'s through
  397. R<@$+>$*        $@<@$1>$2    resolve <route-addr>
  398. # machines in $A are hidden 
  399. R$+<@$=A>        $@$1<@$W.$D>    user@clubhost -> user@thishost.domain
  400. R$+<@$=A.$D>        $@$1<@$W.$D>    same thing w/domains
  401. # machines in $C but not $A get fully qualified and percentified..
  402. R$+<@$=C>        $@$1%$2<@$W.$D>
  403. R$+<@$=C.$D>        $@$1%$2<@$W.$D>
  404. # machines in $V but not $A get fully qualified and percentified..
  405. R$+<@$=V>        $@$1%$2<@$W.$D>
  406. R$+<@$=V.$D>        $@$1%$2<@$W.$D>
  407. # get rid of uucp-like things..
  408. R$+<@$+.UUCP>        $@$2!$1<@$W.$D>
  409. # machines not in either $C or $V (with one token) get percentified..
  410. R$-<@$+>        $@$1%$2<@$W.$D>
  411. # machines not in either $C or $V get source routed (ugly)
  412. R$+<@$+>        $@@$W.$D:$1<@$2>
  413. # internet numeric literal
  414. R$+<@[$+]>        $@$1<@[$2]>    [a.b.c.d]
  415. # convert remaining addresses to old format and externalize appropriately
  416. R$-            $@$1<@$W.$D>    tack on our hostname
  417. # respect bhangist, but reconcile
  418. R$+<@$+.UUCP>        $:$2!$1<@$W.$D> 
  419. R$W!$+<@$+>        $@$1<@$2>    remove duplicate
  420.  
  421. S15
  422. ################################################################################
  423. ###  Ruleset 15: recipient rewriting for non-local smtp mailer
  424. ################################################################################
  425. # null ruleset
  426.  
  427. ################################################################################
  428. ###  Mailers local and prog: local and program mailer specifications
  429. ################################################################################
  430. Mlocal,    P=/bin/mail, F=rlsDFmn, S=10, R=11, A=mail -d $u
  431. Mprog,    P=/bin/sh,   F=lsDFMe,  S=10, R=11, A=sh -c $u
  432.  
  433. S10
  434. ################################################################################
  435. ###  Ruleset 10: sender rewriting for local and prog mailers
  436. ################################################################################
  437. R@            sendmail@$W?g.$D    errors to mailer-daemon
  438. # respect bhangist
  439. R$+<@$+.UUCP>        $:$2!$1
  440.  
  441. S11
  442. ################################################################################
  443. ###  Ruleset 11: recipient rewriting for local and prog mailers
  444. ################################################################################
  445. # respect bhangist
  446. R$+<@$+.UUCP>        $:$2!$1
  447.  
  448. ################################################################################
  449. ###  Mailers uucp and palias: UUCP and path alias mailer specification
  450. ################################################################################
  451. Muucp,    P=/usr/bin/uux,    F=sCDRMhumU,  S=12, R=13, M=100000,
  452.     A=uux - -gC -a$f $h!rmail ($u)
  453. Mpalias, P=/usr/local/etc/uumail, F=hsuCDFMSU, S=12, R=13, M=100000,
  454.     A=uumail -f $g $h!$u
  455.  
  456. S12
  457. ################################################################################
  458. ###  Ruleset 12: sender rewriting for uucp, palias mailers
  459. ################################################################################
  460. R$W!$1            $@$W!$1
  461. R$+%$=C<@$W>        $@$W!$2!$1        
  462. R$+<@$W.UUCP>        $@$W!$1
  463. R$+<@$W>        $@$W!$1
  464. R$+<@$=A.UUCP>        $@$W!$1        alias clubbers are invisible
  465. R$+<@$=A>        $@$W!$1        
  466. R$-            $@$W!$1    
  467. R$+<@$->        $@$W!$2!$1
  468. R$+<@$-.$D>        $@$W!$2!$1
  469. R$+<@$-.decnet>        $@$W!$2!$1
  470. R$+<@$-.decnet.$D>    $@$W!$2!$1
  471. R$+<@$+.UUCP>        $@$W!$2!$1
  472. R$+<@$+>        $@$W!$2!$1
  473. R$+            $@$W!$1
  474.  
  475. S13
  476. ################################################################################
  477. ###  Ruleset 13: recipient rewriting for uucp, palias mailers
  478. ################################################################################
  479. R$+<@$->        $@$2!$1
  480. R$+<@$-.$D>        $@$2!$1
  481. R$+<@$+.UUCP>        $@$2!$1
  482. R$+<@$+>        $@$2!$1
  483. #
  484. ################################################################################
  485. ###  Mailer ns: Internet name server mailer specification
  486. ################################################################################
  487. Mns,    P=[IPC], F=msRDFPMueXL, S=22, R=23, A=IPC $h, E=\r\n
  488.  
  489. S22
  490. ################################################################################
  491. ###  Ruleset 22: sender rewriting for ns mailer
  492. ################################################################################
  493. # pass <route-addr>'s through
  494. R<@$+>$*        $@<@$1>$2    resolve <route-addr>
  495. R$+<@$->        $@$1@$2.$D    user@host->user@host.ourdomain
  496. R$-            $@$1@$W.$D    user->user@host.ourdomain
  497. R$+<@$+.UUCP>        $:$2!$1@$W    user@host.uucp->host!user@host.ourdomain
  498.  
  499. S23
  500. ################################################################################
  501. ###  Ruleset 23: recipient rewriting for ns mailer
  502. ################################################################################
  503. # null ruleset
  504.  
  505. ################################################################################
  506. ###  Mailer csnet: CSNET mailer specification
  507. ################################################################################
  508. Mcsnet,    P=[IPC], F=msRDFPMueXL, S=18, R=19, A=IPC $h, E=\r\n
  509. #
  510. #    Notice that the PMDF mailer DOES NOT USE the host field. We set this
  511. #    field to "CSNET-RELAY" in all instances where we call the PMDF mailer
  512. #    so as to be able to send one copy of a letter with many recipients.
  513.  
  514. S18
  515. ################################################################################
  516. ###  Ruleset 18: sender rewriting for csnet mailer
  517. ################################################################################
  518. R$-<@$=A>        $@$1<@$W.$D>
  519. R$-<@$=A.$D>        $@$1<@$W.$D>
  520. R$-<@$=C>        $@$1<@$2.$D>
  521. R$-<@$-.decnet>        $@$1<@$2.$D>
  522. R$-            $@$1<@$W.$D>
  523. # respect bhangist, but reconcile slightly
  524. R$+<@$+.UUCP>        $:$1<@$W.$D>
  525. R$W!$+<@$+>        $@$1<@$2>
  526.  
  527. S19
  528. ################################################################################
  529. ###  Ruleset 19: recipient rewriting for csnet mailer
  530. ################################################################################
  531. # null ruleset
  532.  
  533. ################################################################################
  534. ###  Mailer uusndmail: non-local smtp via uucp
  535. ################################################################################
  536. Muusndmail,    P=/usr/bin/uux,    F=sCDRMFhum,  S=24, R=25, M=100000,
  537.         A=uux - -gC -z -a$f $h!sendmail \(-f $g     $u \)
  538. #  basic philosophy is that a fictitious address "$Q.Colorado.EDU"
  539. #  will be supported until it can be legitimately converted to uswest.com
  540.  
  541. S24
  542. ################################################################################
  543. ### Ruleset 24:  sender rewriting for uusndmail mailer
  544. ################################################################################
  545. R<@$+>$*        $@<@$1>$2    resolve <route-addr>
  546. # machines in $C are hidden 
  547. R$+<@$=C>        $@$1<@$Q.Colorado.EDU>
  548. R$+<@$=C.UUCP>        $@$1<@$Q.Colorado.EDU>
  549. R$+<@$=C.COM>        $@$1<@$Q.Colorado.EDU>
  550. R$+<@$=C.$D>        $@$1<@$Q.Colorado.EDU>
  551. # all others in user@host format get percentified
  552. R$+<@$->        $@$1%$2<@$Q.Colorado.EDU>
  553. # preserve alien bang-like junk
  554. R$+<@$+.UUCP>        $@$2!$1<@$Q.Colorado.EDU>
  555. # internet numeric literal
  556. R$+<@[$+]>        $@$1<@[$2]>    [a.b.c.d]
  557. # convert remaining addresses to old format and externalize appropriately
  558. R$-            $@$1<@$Q.Colorado.EDU>    tack on our hostname
  559. R$w!$+<@$+>        $@$1<@$2>        remove duplicate
  560.  
  561. S25
  562. ################################################################################
  563. ### Ruleset 25:  recipient rewriting for uusndmail mailer
  564. ################################################################################
  565. R$-<@$=C>        $@$1<@$Q.Colorado.EDU>    tack on our hostname
  566.